package CapaDatos;


/**
 *
 * @author Usuario
 */
public class Cliente extends Persona {

/** atributo que guarda el tipo de cliente**/
    private String tipoCliente;

 /** atributo que guarda el numero de las reservas**/
    private int    numReservas;

 /**atributo que guarda la contraseña del cliente**/
    private String Password;

  /**atributo que guarda el userName del cliente**/
    private String userName;


  /**
   * constructor de la clase Cliente
   * @param nombre nombre del cliente
   * @param apellido apellido del cliente
   * @param cedula cedula del cliente
   * @param nacionalidad nacionalidad del cliente
   * @param sexo sexo del cliente
   * @param fechaNac fecha de nacimiento del cliente
   * @param edoCivil estado civil del cliente
   * @param tipoCliente tipo de cliente
   * @param numReservas numero de reservas del cliente
   * @param Password contraseña del cliente
   * @param userName userName del cliente
   */

    public Cliente(String nombre, String apellido, String cedula, String nacionalidad, String sexo, String fechaNac, String edoCivil, String tipoCliente, int numReservas, String Password, String userName) {
        super(nombre, apellido, cedula, nacionalidad, sexo, fechaNac, edoCivil);
        this.tipoCliente = tipoCliente;
        this.numReservas = numReservas;
        this.Password = Password;
        this.userName = userName;
    }

    /**
     * constructor de la clase Cliente es el constructor hecho para clientes
     * nuevos que se registran al sistema
     * @param nombre nombre del cliente
     * @param apellido apellido del cliente
     * @param cedula cedula del cliente
     * @param nacionalidad nacionalidad del cliente
     * @param sexo sexo del cliente
     * @param fechaNac fecha de nacimiento del cliente
     * @param edoCivil estado civil del cliente
     * @param Password contraseña del cliente
     * @param userName userName del cliente
     */
      public Cliente(String nombre, String apellido, String cedula, String nacionalidad, String sexo, String fechaNac, String edoCivil, String Password, String userName) {
        super(nombre, apellido, cedula, nacionalidad, sexo, fechaNac, edoCivil);
        this.tipoCliente = "";
        this.numReservas = 0;
        this.Password = Password;
        this.userName = userName;
    }

     /**
      * constructor de la clase Clente
      */
    public Cliente()
    {
        super();
    }

    /**
     * @return the tipoCliente
     */
    public String getTipoCliente() {
        return tipoCliente;
    }

    /**
     * @param tipoCliente the tipoCliente to set
     */
    public void setTipoCliente(String tipoCliente) {
        this.tipoCliente = tipoCliente;
    }

    /**
     * @return the numReservas
     */
    public int getNumReservas() {
        return numReservas;
    }

    /**
     * @param numReservas the numReservas to set
     */
    public void setNumReservas(int numReservas) {
        this.numReservas = numReservas;
    }

    /**
     * @return the Password
     */
    public String getPassword() {
        return Password;
    }

    /**
     * @param Password the Password to set
     */
    public void setPassword(String Password) {
        this.Password = Password;
    }

    /**
     * @return the userName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * @param userName the userName to set
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }


    /**
     * firma para ver si un cliente es estralla o no (posee mas de 20
     * reservaciones)
     * @param elCliente objeto de tipo Cliente
     * @return boolean, TRUE si es estrella y FALSE si no lo es
     */
  public boolean esClienteEstrella(Cliente elCliente)
   {
    int numReserva = elCliente.getNumReservas();

    if(numReserva == 20 && elCliente.getTipoCliente().equals("Regular"))
      {
        elCliente.setTipoCliente("Estrella");
        return true;
      }
    else
        return false;
   }


}
